#include <iostream>
using namespace std;

int main()
{
    // 引用必须初始化
    int a = 0;
    int &b = a;
    cout << b << endl;
    // 引用定义后不能改变指向
    int c = 2;
    b = c;
    cout << &b << endl;
    cout << &c << endl;
    // 一个变量可以有多个引用，多个别名
    int &d = a;
    cout << &d << endl;
    // 指针和引用功能类似，重叠，但引用只是对指针使用复杂的场景简单化，让代码更简单
    // 不能替代指针的原因：引用定义后，不能改变指向
    return 0;
    // 引用不开空间，指针开空间
    // 从底层来讲，引用就是指针
    // 引用相对于指针来讲更安全

}